package com.ruoyi.account.domain;

import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.web.domain.BaseEntity;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;

/**
 * 存储账套基础信息及所属公司税务相关信息对象 tb_account
 * 
 * @author ruoyi
 * @date 2025-02-25
 */
public class Account extends BaseEntity
{
    private static final long serialVersionUID = 1L;
    //111
    /** 自增主键 */
    private Long id;

    @Excel(name = "账套编号")
    private String accountSetId;

    /** 账套名称 */
    @Excel(name = "账套名称")
    @NotBlank(message = "账套名称不为空")
    private String accountSetName;

    /** 账套启用年份 */

    @Excel(name = "账套启用年份")
    @NotNull(message = "年份不为空")
    private Long startYear;

    /** 账套启用月份 */
    @Excel(name = "账套启用月份")
    @NotNull(message = "月份不为空")
    private Long startMonth;

    /** 会计准则 */
    @Excel(name = "会计准则")
    private String accountingStandards;

    /** 行业 */
    @Excel(name = "行业")
    private String industry;

    /** 增值税种类 */
    @Excel(name = "增值税种类")
    private String vatType;

    /** 公司名称 */
    @Excel(name = "公司名称")
    private String companyName;

    /** 统一社会信用代码 */
    @Excel(name = "统一社会信用代码")
    private String unifiedSocialCreditCode;

    /** 报税地区 */
    @Excel(name = "报税地区")
    private String taxReportArea;

    @Excel(name = "单位名称")
    private String unitName;

    @Excel(name = "账套管理员")
    private String accountSetManager;

    @Excel(name = "其他角色权限")
    private String otherRolePermissions;


    public void setAccountSetId(String accountSetId) {
        this.accountSetId = accountSetId;
    }

    @Excel(name = "资产模块启用状态")
    private String assetModuleStatus;

    @Excel(name = "资产模块启用日期")
    private String assetModuleStartDate;

    @Excel(name = "资金模块启用状态")
    private String fundModuleStatus;

    @Excel(name = "前往进销存启用状态")
    private String inventoryModuleStatus;
    @Excel(name = "是否凭证审核")
    private String voucherAuditStatus;

    @Excel(name = "资产负债表辅助核算余额取值方式")
    private String balanceSheetAuxiliaryCalculation;

    @Excel(name = "单位/数量/汇率小数位")
    private String decimalPlaces;

    @Excel(name = "登录方式")
    private String loginMethod;

    @Excel(name = "个人报税姓名")
    private String taxDeclarationPersonName;
    @Excel(name = "个人报税手机号")
    private String taxDeclarationPersonPhone;
    @Excel(name = "个人报税密码")
    private String taxDeclarationPassword;
    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }
    public void setAccountSetName(String accountSetName) 
    {
        this.accountSetName = accountSetName;
    }

    public String getAccountSetId() {
        return accountSetId;
    }



    public String getUnitName() {
        return unitName;
    }

    public void setUnitName(String unitName) {
        this.unitName = unitName;
    }

    public String getAccountSetManager() {
        return accountSetManager;
    }

    public void setAccountSetManager(String accountSetManager) {
        this.accountSetManager = accountSetManager;
    }

    public String getOtherRolePermissions() {
        return otherRolePermissions;
    }

    public void setOtherRolePermissions(String otherRolePermissions) {
        this.otherRolePermissions = otherRolePermissions;
    }

    public String getAssetModuleStatus() {
        return assetModuleStatus;
    }

    public void setAssetModuleStatus(String assetModuleStatus) {
        this.assetModuleStatus = assetModuleStatus;
    }

    public String getAssetModuleStartDate() {
        return assetModuleStartDate;
    }

    public void setAssetModuleStartDate(String assetModuleStartDate) {
        this.assetModuleStartDate = assetModuleStartDate;
    }

    public String getFundModuleStatus() {
        return fundModuleStatus;
    }

    public void setFundModuleStatus(String fundModuleStatus) {
        this.fundModuleStatus = fundModuleStatus;
    }

    public String getInventoryModuleStatus() {
        return inventoryModuleStatus;
    }

    public void setInventoryModuleStatus(String inventoryModuleStatus) {
        this.inventoryModuleStatus = inventoryModuleStatus;
    }

    public String getVoucherAuditStatus() {
        return voucherAuditStatus;
    }

    public void setVoucherAuditStatus(String voucherAuditStatus) {
        this.voucherAuditStatus = voucherAuditStatus;
    }

    public String getBalanceSheetAuxiliaryCalculation() {
        return balanceSheetAuxiliaryCalculation;
    }

    public void setBalanceSheetAuxiliaryCalculation(String balanceSheetAuxiliaryCalculation) {
        this.balanceSheetAuxiliaryCalculation = balanceSheetAuxiliaryCalculation;
    }

    public String getDecimalPlaces() {
        return decimalPlaces;
    }

    public void setDecimalPlaces(String decimalPlaces) {
        this.decimalPlaces = decimalPlaces;
    }

    public String getLoginMethod() {
        return loginMethod;
    }

    public void setLoginMethod(String loginMethod) {
        this.loginMethod = loginMethod;
    }

    public String getTaxDeclarationPersonName() {
        return taxDeclarationPersonName;
    }

    public void setTaxDeclarationPersonName(String taxDeclarationPersonName) {
        this.taxDeclarationPersonName = taxDeclarationPersonName;
    }

    public String getTaxDeclarationPersonPhone() {
        return taxDeclarationPersonPhone;
    }

    public void setTaxDeclarationPersonPhone(String taxDeclarationPersonPhone) {
        this.taxDeclarationPersonPhone = taxDeclarationPersonPhone;
    }

    public String getTaxDeclarationPassword() {
        return taxDeclarationPassword;
    }

    public void setTaxDeclarationPassword(String taxDeclarationPassword) {
        this.taxDeclarationPassword = taxDeclarationPassword;
    }

    public String getAccountSetName()
    {
        return accountSetName;
    }
    public void setStartYear(Long startYear) 
    {
        this.startYear = startYear;
    }

    public Long getStartYear() 
    {
        return startYear;
    }
    public void setStartMonth(Long startMonth) 
    {
        this.startMonth = startMonth;
    }

    public Long getStartMonth() 
    {
        return startMonth;
    }
    public void setAccountingStandards(String accountingStandards) 
    {
        this.accountingStandards = accountingStandards;
    }

    public String getAccountingStandards() 
    {
        return accountingStandards;
    }
    public void setIndustry(String industry) 
    {
        this.industry = industry;
    }

    public String getIndustry() 
    {
        return industry;
    }
    public void setVatType(String vatType) 
    {
        this.vatType = vatType;
    }

    public String getVatType() 
    {
        return vatType;
    }
    public void setCompanyName(String companyName) 
    {
        this.companyName = companyName;
    }

    public String getCompanyName() 
    {
        return companyName;
    }
    public void setUnifiedSocialCreditCode(String unifiedSocialCreditCode) 
    {
        this.unifiedSocialCreditCode = unifiedSocialCreditCode;
    }

    public String getUnifiedSocialCreditCode() 
    {
        return unifiedSocialCreditCode;
    }
    public void setTaxReportArea(String taxReportArea) 
    {
        this.taxReportArea = taxReportArea;
    }

    public String getTaxReportArea() 
    {
        return taxReportArea;
    }

    public Account() {
    }

    public Account(Long id, String accountSetId,String accountSetName, Long startYear, Long startMonth, String accountingStandards, String industry, String vatType, String companyName, String unifiedSocialCreditCode, String taxReportArea, String unitName, String accountSetManager, String otherRolePermissions, String assetModuleStatus, String assetModuleStartDate, String fundModuleStatus, String inventoryModuleStatus, String voucherAuditStatus, String balanceSheetAuxiliaryCalculation, String decimalPlaces, String loginMethod, String taxDeclarationPersonName, String taxDeclarationPersonPhone, String taxDeclarationPassword) {
        this.id = id;
        this.accountSetId = accountSetId;
        this.accountSetName = accountSetName;
        this.startYear = startYear;
        this.startMonth = startMonth;
        this.accountingStandards = accountingStandards;
        this.industry = industry;
        this.vatType = vatType;
        this.companyName = companyName;
        this.unifiedSocialCreditCode = unifiedSocialCreditCode;
        this.taxReportArea = taxReportArea;
        this.unitName = unitName;
        this.accountSetManager = accountSetManager;
        this.otherRolePermissions = otherRolePermissions;
        this.assetModuleStatus = assetModuleStatus;
        this.assetModuleStartDate = assetModuleStartDate;
        this.fundModuleStatus = fundModuleStatus;
        this.inventoryModuleStatus = inventoryModuleStatus;
        this.voucherAuditStatus = voucherAuditStatus;
        this.balanceSheetAuxiliaryCalculation = balanceSheetAuxiliaryCalculation;
        this.decimalPlaces = decimalPlaces;
        this.loginMethod = loginMethod;
        this.taxDeclarationPersonName = taxDeclarationPersonName;
        this.taxDeclarationPersonPhone = taxDeclarationPersonPhone;
        this.taxDeclarationPassword = taxDeclarationPassword;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
                .append("accountSetId", getAccountSetId())
            .append("accountSetName", getAccountSetName())
            .append("startYear", getStartYear())
            .append("startMonth", getStartMonth())
            .append("accountingStandards", getAccountingStandards())
            .append("industry", getIndustry())
            .append("vatType", getVatType())
            .append("companyName", getCompanyName())
            .append("unifiedSocialCreditCode", getUnifiedSocialCreditCode())
            .append("taxReportArea", getTaxReportArea())
                .append("unitName", getUnitName())
                .append("accountSetManager", getAccountSetManager())
                .append("otherRolePermissions", getOtherRolePermissions())
                .append("assetModuleStatus", getAssetModuleStatus())
                .append("assetModuleStartDate", getAssetModuleStartDate())
                .append("fundModuleStatus", getFundModuleStatus())
                .append("inventoryModuleStatus", getInventoryModuleStatus())
                .append("voucherAuditStatus", getVoucherAuditStatus())
                .append("balanceSheetAuxiliaryCalculation", getBalanceSheetAuxiliaryCalculation())
                .append("decimalPlaces", getDecimalPlaces())
                .append("loginMethod", getLoginMethod())
                .append("taxDeclarationPersonName", getTaxDeclarationPersonName())
                .append("taxDeclarationPersonPhone", getTaxDeclarationPersonPhone())
                .append("taxDeclarationPassword", getTaxDeclarationPassword())
                .toString();

    }
}
